package com.rykj.qxj.server.dao;

import com.rykj.qxj.server.common.ZmanagerBaseMapper;
import com.rykj.qxj.server.model.entity.MetadataBasic;
import com.rykj.qxj.server.model.entity.MetadataElement;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface MetadataElementMapper extends ZmanagerBaseMapper<MetadataElement> {

    void saveMetadataElement(@Param("metadataElements") List<MetadataElement> metadataElements);

    void updateMetadataElement( MetadataElement metadataElement);

    List<MetadataElement> getMetadataElementList(Map<String, Object> paraMap);

    /**
     * 字段申请信息详情
     * @param auditId
     * @return
     */
    List<MetadataElement>  getAuditFieldDetails(Integer auditId);

    /**
     * 字段审核状态修改
     * @param paraMap
     */
    void saveByAuditId(Map<String, Object> paraMap);

    /**
     * 审核通过删除上个版本字段
     * @param paraMap
     */
    void deleteByAuditId(Map<String, Object> paraMap);

    void deleteMetadataElementById(Integer metadataElementId);

    void deleteByTableId(int tableId);

    void saveAuditMetadataElement(@Param("metadataElements") List<MetadataElement> metadataElements);

    MetadataElement getMetadataElementByFieldId(int id);

    List<MetadataElement> getDropFieldsByAuditId(Integer auditId);

    void saveSignMetadataElement(MetadataElement metadataElement);

    List<MetadataElement> getDropAuditFieldDetails(Integer auditId);

    MetadataElement checkElement(Map<String, Object> paraMap);

    void deleteAuditElement(Integer auditElementId);
    //根据出具库名称查询该数据库下面所有的表
    List<String> selectTableListByDatabase(String dataBaseName);
}
